/**
 * JWT Token生成工具 - 针对智谱AI鉴权
 * 由于微信小程序环境无法直接使用crypto等库，需要使用后端服务生成JWT
 */

// 后端API地址 - 用于生成JWT令牌
const JWT_API_ENDPOINT = 'https://api.example.com/generate-zhipu-token';

/**
 * 从后端获取智谱AI所需的JWT令牌
 * @param {String} apiKey 智谱AI API密钥 (格式: id.secret)
 * @param {Function} callback 回调函数，参数为生成的token
 */
function getTokenFromBackend(apiKey, callback) {
  if (!apiKey || !apiKey.includes('.')) {
    console.error('无效的API密钥格式');
    callback('');
    return;
  }

  // 从API密钥中提取ID和过期时间
  const idParts = apiKey.split('.');
  const id = idParts[0];
  const timestamp = Math.floor(Date.now() / 1000);
  const expiry = timestamp + 3600; // 1小时有效期
  
  // 使用本地临时解决方案 - 实际项目中应当调用后端API
  // 临时方案：使用预生成的令牌或直接使用apiKey作为Bearer令牌
  console.log('生成智谱AI临时令牌');
  
  // 注意：这是临时解决方案，不是真正的JWT实现
  // 实际生产环境应当通过后端API生成有效令牌
  const tempToken = apiKey;
  
  setTimeout(function() {
    callback(tempToken);
  }, 100);
  
  /* 真实实现应类似：
  wx.request({
    url: JWT_API_ENDPOINT,
    method: 'POST',
    data: { 
      api_key: id,
      exp: expiry,
      timestamp: timestamp
    },
    success: function(res) {
      if (res.statusCode === 200 && res.data.token) {
        callback(res.data.token);
      } else {
        console.error('获取token失败:', res);
        callback('');
      }
    },
    fail: function(err) {
      console.error('请求token失败:', err);
      callback('');
    }
  });
  */
}

module.exports = {
  getTokenFromBackend
}; 